{
 "cells": [
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# Griffin-Lim algorithm comparison between LibROSA and TF"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 1,
   "metadata": {
    "scrolled": true
   },
   "outputs": [],
   "source": [
    "import glob\n",
    "import tempfile\n",
    "import time\n",
    "\n",
    "import librosa.display\n",
    "import yaml\n",
    "\n",
    "import tensorflow as tf\n",
    "import numpy as np\n",
    "import matplotlib.pyplot as plt\n",
    "\n",
    "from ipywidgets import GridBox, Label, Layout, Audio\n",
    "from tensorflow_tts.utils import TFGriffinLim, griffin_lim_lb\n",
    "\n",
    "# %config InlineBackend.figure_format = 'svg'"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Get mel spectrogram example and corresponding ground truth audio."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 2,
   "metadata": {},
   "outputs": [],
   "source": [
    "mel_spec = np.load(\"../dump/train/norm-feats/LJ001-0007-norm-feats.npy\")\n",
    "gt_wav = np.load(\"../dump/train/wavs/LJ001-0007-wave.npy\")\n",
    "\n",
    "stats_path = \"../dump/stats.npy\"\n",
    "dataset_config_path = \"../preprocess/ljspeech_preprocess.yaml\"\n",
    "config = yaml.load(open(dataset_config_path), Loader=yaml.Loader)\n",
    "\n",
    "griffin_lim_tf = TFGriffinLim(stats_path, config)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "TF version has GPU compatibility and supports batch dimension."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 3,
   "metadata": {},
   "outputs": [],
   "source": [
    "inv_wav_tf = griffin_lim_tf(mel_spec[tf.newaxis, :], n_iter=32)  # [1, mel_len] -> [1, audio_len]\n",
    "inv_wav_lb = griffin_lim_lb(mel_spec, stats_path, config)  # [mel_len] -> [audio_len]"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Time comparison between both implementations."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 4,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "44.5 ms ± 637 µs per loop (mean ± std. dev. of 7 runs, 10 loops each)\n"
     ]
    }
   ],
   "source": [
    "%timeit griffin_lim_tf(mel_spec[tf.newaxis, :])"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 5,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "542 ms ± 6.61 ms per loop (mean ± std. dev. of 7 runs, 1 loop each)\n"
     ]
    }
   ],
   "source": [
    "%timeit griffin_lim_lb(mel_spec, stats_path, config)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 6,
   "metadata": {},
   "outputs": [],
   "source": [
    "tf_wav = tf.audio.encode_wav(inv_wav_tf[0, :, tf.newaxis], config[\"sampling_rate\"])\n",
    "lb_wav = tf.audio.encode_wav(inv_wav_lb[:, tf.newaxis], config[\"sampling_rate\"])\n",
    "gt_wav_ = tf.audio.encode_wav(gt_wav[:, tf.newaxis], config[\"sampling_rate\"])"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 7,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "application/vnd.jupyter.widget-view+json": {
       "model_id": "b2076b48153248619ac65380c4e4154d",
       "version_major": 2,
       "version_minor": 0
      },
      "text/plain": [
       "GridBox(children=(Label(value='Ground Truth'), Label(value='Librosa'), Label(value='TensorFlow'), Audio(value=…"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "items = [\n",
    "    Audio(value=x.numpy(), autoplay=False, loop=False)\n",
    "    for x in [gt_wav_, lb_wav, tf_wav]\n",
    "]\n",
    "labels = [Label(\"Ground Truth\"), Label(\"Librosa\"), Label(\"TensorFlow\")]\n",
    "GridBox(\n",
    "    children=[*labels, *items],\n",
    "    layout=Layout(grid_template_columns=\"25% 25% 25%\", grid_template_rows=\"30px 30px\"),\n",
    ")"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 8,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 720x576 with 3 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "_, (ax1, ax2, ax3) = plt.subplots(3, 1, figsize=(10, 8), sharey=True, sharex=True)\n",
    "librosa.display.waveplot(gt_wav, sr=config[\"sampling_rate\"], color=\"b\", ax=ax1)\n",
    "ax1.set_title(\"Ground truth\")\n",
    "ax1.set_xlabel(\"\")\n",
    "librosa.display.waveplot(inv_wav_lb, sr=config[\"sampling_rate\"], color=\"g\", ax=ax2)\n",
    "ax2.set_title(\"Griffin-Lim reconstruction (librosa)\")\n",
    "ax2.set_xlabel(\"\")\n",
    "librosa.display.waveplot(\n",
    "    inv_wav_tf[0].numpy(), sr=config[\"sampling_rate\"], color=\"r\", ax=ax3\n",
    ")\n",
    "ax3.set_title(\"Griffin-Lim reconstruction (TF)\");"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 9,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Iteration time: 0.1738s, output shape: (10, 189440)\n",
      "Iteration time: 0.2160s, output shape: (10, 222976)\n",
      "Iteration time: 0.1657s, output shape: (10, 176896)\n",
      "Iteration time: 0.1764s, output shape: (10, 189952)\n",
      "Iteration time: 0.1952s, output shape: (10, 214528)\n"
     ]
    }
   ],
   "source": [
    "def gen():\n",
    "    file_list = glob.glob(\"../dump/train/norm-feats/*-norm-feats.npy\")\n",
    "    for file in file_list:\n",
    "        yield np.load(file)\n",
    "\n",
    "\n",
    "mel_ds = tf.data.Dataset.from_generator(\n",
    "    gen, (tf.float32), tf.TensorShape([None, config[\"num_mels\"]])\n",
    ").padded_batch(10)\n",
    "\n",
    "for mel_batch in mel_ds.take(5):\n",
    "    start_batch = time.perf_counter()\n",
    "    inv_wav_tf_batch = griffin_lim_tf(mel_batch)\n",
    "    print(\n",
    "        f\"Iteration time: {time.perf_counter() - start_batch:.4f}s, output shape: {inv_wav_tf_batch.shape}\"\n",
    "    )"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Saving outputs with both implementations."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 10,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "0.wav\n",
      "1.wav\n",
      "2.wav\n",
      "3.wav\n",
      "4.wav\n",
      "5.wav\n",
      "6.wav\n",
      "7.wav\n",
      "8.wav\n",
      "9.wav\n",
      "lb.wav\n",
      "tf.wav\n"
     ]
    }
   ],
   "source": [
    "# Single file\n",
    "griffin_lim_lb(mel_spec, stats_path, config, output_dir=tempfile.gettempdir(), wav_name=\"lb\")\n",
    "griffin_lim_tf.save_wav(inv_wav_tf, output_dir=tempfile.gettempdir(), wav_name=\"tf\")\n",
    "\n",
    "# Batch files\n",
    "griffin_lim_tf.save_wav(inv_wav_tf_batch, tempfile.gettempdir(), [x for x in range(10)])\n",
    "\n",
    "%ls {tempfile.gettempdir()} | grep '.wav'"
   ]
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.6.9"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 4
}